package com.ruoyi.asset.toilet.service;

import com.ruoyi.asset.lamp.domain.bo.LampCommunityCountBo;
import com.ruoyi.asset.toilet.domain.bo.ToiletMaintenanceBo;
import com.ruoyi.asset.toilet.domain.bo.ToiletStatisticsBo;
import com.ruoyi.asset.toilet.domain.vo.ToiletCommunityCountVo;
import com.ruoyi.asset.toilet.domain.vo.ToiletCommunityMapVo;
import com.ruoyi.asset.toilet.domain.vo.ToiletMaintenanceVo;
import com.ruoyi.asset.toilet.domain.vo.ToiletWorkStatisticsVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 公厕管养
 *
 * @author 12276
 */
public interface IToiletMaintenanceService {

    /**
     * 数据导入
     *
     * @return 返回导入失败数据的行号和错误信息
     */
    List<String> importExcel(String excelUrl);

    /**
     * 删除公厕管养
     */
    int deleteToilet(Set<Long> idsSet);

    /**
     * 查询公厕管养范围
     *
     * @return
     */
    TableDataInfo<ToiletMaintenanceVo> queryToilet(ToiletMaintenanceBo searchBo, PageQuery pageQuery);

    /**
     * 导出公厕管养范围
     *
     * @param searchBo
     * @return
     */
    List<ToiletMaintenanceVo> exportToilet(ToiletMaintenanceBo searchBo);

    /**
     * 统计首页公厕数据
     *
     * @return
     */
    ToiletStatisticsBo getToiletCount();

    Map getToiletCommunityCount();

    /**
     * 智慧大屏路灯管养左侧
     *
     * @param date 指定日期
     * @return
     */
    List<ToiletCommunityCountVo> getToiletCountByCommunity(String date);

    /**
     * 今日统计
     *
     * @param date 指定日期
     * @return
     */
    ToiletWorkStatisticsVo getToiletWorkByDate(String date);

    /**
     * 今日统计
     *
     * @param date 指定日期
     * @param community 指定社区
     * @return
     */
    ToiletWorkStatisticsVo getToiletWorkByDateAndCommunity(String date, String community);

    ToiletCommunityMapVo getCommunityByDate(String community, String date);

    Integer getToiletByDateAndCommunity(String date, String community);
}
